#!/usr/bin/env python
# coding: utf-8

import re
import sys
from itertools import islice

GO_TYPES = ['P', 'F', 'C']

def parse_go_funcs(s):
    d = {}
    for tf in s.split():
        t,f = tf.split(':')
        assert t not in d
        d[t] = set(f.split(','))
    return d

def main():
    compare_type = sys.argv[1].strip()
    assert compare_type in ['exact', 'entry']
    real_func = sys.argv[2].strip()
    predicted_funcs = (line.strip() for line in sys.stdin if line.strip())

    if not real_func:
        predicted_funcs = list(islice(predicted_funcs, 1))
        if predicted_funcs:
            # определили неизвестную функцию
            return '%s\t%s' % (-1, predicted_funcs[0])
        else:
            # не определили неизвестную функцию
            return '-2\t'

    else:

        sf1 = parse_go_funcs(real_func)
        i = -1
        best_func = None
        for i, func2 in enumerate(predicted_funcs):
            if i == 0:
                best_func = func2
            sf2 = parse_go_funcs(func2)
            if compare_type == 'entry':
                if (sf1.keys() == sf2.keys()):
                    found = True
                    for t in sf1:
                        if sf1[t].difference(sf2[t]) and sf2[t].difference(sf1[t]):
                            found = False
                    if found:
                        # угадали функцию
                        return '%s\t%s' % (i+1, func2)
            elif compare_type == 'exact':
                if sf1 == sf2:
                    # угадали функцию
                    return '%s\t%s' % (i+1, func2)
        if i < 0:
            # не предсказали никакой функции для известной
            return '0.5\t'
        else:
            # не угадали функцию
            return '%s\t%s' % (0, best_func)


print main()

